俗話說「人靠衣裝,佛靠金裝」,一個系統就算後端再穩,如果介面醜醜的,朋友肯定是不想用的!為了快速打造美觀且具備 RWD (響應式) 的介面,我們選擇了 Material UI (MUI) 作為前端組件庫。今天我們就來把 MUI 安裝好,並設定專屬的主題配色。
在現代前端開發中,最常被拿來比較的兩套樣式解決方案就是 MUI (組件庫) 與 Tailwind CSS (Utility-first CSS)。我們為什麼選 MUI 呢?
| 比較項目 | Material UI (本專案選用) | Tailwind CSS |
|---|---|---|
| 開發速度 | 極快。直接提供寫好的 <Button>, <Card>,連動畫跟點擊波紋都包辦了。 |
中等。需要自己用 bg-blue-500 rounded-lg shadow-md 慢慢刻出按鈕。 |
| 客製化彈性 | 中等。如果想大幅度改變預設的 Material Design 風格,覆寫樣式會比較辛苦。 | 極高。完全沒有預設的組件包袱,想長怎樣就長怎樣。 |
| 適用情境 | 後台系統、需要快速產出且風格一致的專案。 (非常適合我們這個 Side Project!) | 高度客製化設計稿、C端大型產品。 |
因為我們的目標是快速且漂亮地上線,MUI 絕對是性價比最高的選擇!
在 src/main.tsx (或 App.tsx) 中引入 ThemeProvider 與 CssBaseline,我們定義了藍色系的寶可夢主題風格:
import { ThemeProvider, createTheme, CssBaseline } from '@mui/material';
// 自訂系統主題配色
const theme = createTheme({
palette: {
primary: {
main: '#1976d2', // 寶可夢經典藍色調
},
background: {
default: '#f8fafc',
},
},
typography: {
fontFamily: '"Inter", "Roboto", "Helvetica", "Arial", sans-serif',
},
});
ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
<React.StrictMode>
<ThemeProvider theme={theme}>
<CssBaseline /> {/* 抹平各瀏覽器預設樣式差異,讓背景變乾淨 */}
<App />
</ThemeProvider>
</React.StrictMode>
);

套用
CssBaseline後的網頁背景顏色乾淨,可一目了然它的威力。
我們成功套用了 Material UI 的主題!明天,我們將實作 React Router,讓這支單頁應用程式 (SPA) 能在「登入頁」與「圖鑑頁」之間自由穿梭!